package com.project.study.farming.base.service;

import com.project.study.farming.base.entity.dto.*;
import com.project.study.farming.base.entity.po.MessagePo;
import org.springframework.web.servlet.ModelAndView;

/**
 * 管理员主要业务接口
 * @since 2020-05-01
 */
public interface GuanLiMainService {

    ModelAndView glMain();

    /**
     * 跳转农产品上传页面
     * @return 上传页面
     */
    ModelAndView uploadCropsPage();

    /**
     * 上传信息
     * @param dto 上传信息
     * @return 页面
     */
    ModelAndView uploadCrops(UploadCropsDto dto);

    /**
     * 跳转审批页面
     * @param pageNum 页码
     * @return
     */
    ModelAndView searchAudit(Integer pageNum, Integer bigType, Integer cropId, Integer auditStatus);

    /**
     * 管理员审批操作
     * @param id 记录id
     * @param status 审批状态
     * @param pageNum 当前页
     * @return 审批页面
     */
    ModelAndView auditResult(String id, Integer status, Integer pageNum);

    /**
     * 管理员审批操作
     * @param id 记录id
     * @param pageNum 当前页
     * @return 审批页面
     */
    ModelAndView deleteRes(String id, Integer pageNum);

    ModelAndView areaPage(Integer pageNum);

    ModelAndView deleteArea(String id, Integer pageNum);

    ModelAndView editArea(String id);

    ModelAndView saveArea(AreaPageDto dto);

    ModelAndView getDrawPage(Integer id);

    ModelAndView messagePage(Integer pageNum);

    ModelAndView deleteMessage(String id, Integer pageNum);

    ModelAndView editMessage(String id);

    ModelAndView saveMessage(MessagePo messagePo);

    ModelAndView cropTypePage(Integer pageNum, Integer type);

    ModelAndView deleteTypePage(String id, Integer pageNum, Integer type);

    ModelAndView editTypePage(String id, Integer type);

    ModelAndView saveCropType(CropsTypeDto cropsTypeDto);

    ModelAndView userPage(Integer pageNum);

    ModelAndView deleteUser(String id, Integer pageNum);

    ModelAndView addUser(String id);

    ModelAndView saveUser(UserDto userDto);

    ModelAndView medicinePage(Integer pageNum, Integer medicineId, Integer useStatus);

    ModelAndView deleteMedicine(String id, Integer pageNum);

    ModelAndView editMedicine(Integer id);

    ModelAndView saveMedicine(MedicineDto dto);

    ModelAndView seePage(Integer pageNum, Integer areaId, Integer cropId, Integer plantStatus);
}
